home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / parisc / include / asm / smp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.6 KB  |  67 lines

  1. #ifndef __ASM_SMP_H
  2. #define __ASM_SMP_H
  3.  
  4.  
  5. #if defined(CONFIG_SMP)
  6.  
  7. /* Page Zero Location PDC will look for the address to branch to when we poke
  8. ** slave CPUs still in "Icache loop".
  9. */
  10. #define PDC_OS_BOOT_RENDEZVOUS     0x10
  11. #define PDC_OS_BOOT_RENDEZVOUS_HI  0x28
  12.  
  13. #ifndef ASSEMBLY
  14. #include <linux/bitops.h>
  15. #include <linux/threads.h>    /* for NR_CPUS */
  16. #include <linux/cpumask.h>
  17. typedef unsigned long address_t;
  18.  
  19. extern cpumask_t cpu_online_map;
  20.  
  21.  
  22. /*
  23.  *    Private routines/data
  24.  *
  25.  *    physical and logical are equivalent until we support CPU hotplug.
  26.  */
  27. #define cpu_number_map(cpu)    (cpu)
  28. #define cpu_logical_map(cpu)    (cpu)
  29.  
  30. extern void smp_send_reschedule(int cpu);
  31. extern void smp_send_all_nop(void);
  32.  
  33. extern void arch_send_call_function_single_ipi(int cpu);
  34. extern void arch_send_call_function_ipi(cpumask_t mask);
  35.  
  36. #endif /* !ASSEMBLY */
  37.  
  38. /*
  39.  *    This magic constant controls our willingness to transfer
  40.  *      a process across CPUs. Such a transfer incurs cache and tlb
  41.  *      misses. The current value is inherited from i386. Still needs
  42.  *      to be tuned for parisc.
  43.  */
  44.  
  45. #define PROC_CHANGE_PENALTY    15        /* Schedule penalty */
  46.  
  47. #define raw_smp_processor_id()    (current_thread_info()->cpu)
  48.  
  49. #else /* CONFIG_SMP */
  50.  
  51. static inline void smp_send_all_nop(void) { return; }
  52.  
  53. #endif
  54.  
  55. #define NO_PROC_ID        0xFF        /* No processor magic marker */
  56. #define ANY_PROC_ID        0xFF        /* Any processor magic marker */
  57. static inline int __cpu_disable (void) {
  58.   return 0;
  59. }
  60. static inline void __cpu_die (unsigned int cpu) {
  61.   while(1)
  62.     ;
  63. }
  64. extern int __cpu_up (unsigned int cpu);
  65.  
  66. #endif /*  __ASM_SMP_H */
  67.